Bookmarking prospective media content on computer network

ABSTRACT

Systems and methods for bookmarking prospective media content on computer network. In some implementations, a method includes: at a server system, obtaining, from a electronic device, information corresponding to a media content item; identifying the media content item, from among a plurality of media content items, in accordance with the information; creating a provisional bookmark corresponding to a first URL where the media content item is not yet available but is likely to be available within a predefined time period; and transmitting the provisional bookmark to the electronic device. The method optionally includes: after creating the provisional bookmark, in accordance with a determination that the media content item has become available at the first URL, before the predefined time period: converting the provisional bookmark into a non-provisional bookmark.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/668,104, filed Nov. 2, 2012, entitled “Bookmarking Prospective MediaContent on Computer Network,” which is hereby incorporated by referencein its entirety.

TECHNICAL FIELD

The disclosed implementations relate generally to bookmarkingprospective media content on computer network.

BACKGROUND

Providing bookmarks for media content that is not currently availablebut will likely be available in the near future has become increasinglyimportant. For example, while watching a Law and Order episode on TV, aviewer might search for the same episode, on the Internet, because he orshe would like to repeat the episode at a later time.

Difficulties abound, however, because if a TV episode is not currentlyavailable on the Internet (as is commonly the case for newly-aired TVepisodes), when that episode would be made available online is often notknown at the time the viewer is searching for it, and frustration ariseswhen repeated searches turn up no useful results. In addition, beingunable to provide useful search results, a content provider (e.g.,YouTube.com) might lose an opportunity to deliver content desired by aviewer when it becomes available.

The above identified difficulties are reduced or eliminated by thesystems and methods disclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The implementations disclosed herein are illustrated by way of example,and not by way of limitation, in the figures of the accompanyingdrawings. Like reference numerals refer to corresponding partsthroughout the drawings.

FIG. 1 is a block diagram illustrating a computer system, in accordancewith some implementations.

FIG. 2 is a block diagram illustrating an electronic device, inaccordance with some implementations.

FIG. 3 is a block diagram illustrating a server system, in accordancewith some implementations.

FIG. 4 is a block diagram chart illustrating an example bookmarkdatabase, in accordance with some implementations.

FIG. 5 is a flow chart illustrating a method for bookmarking prospectivemedia content on computer network in a computer system, in accordancewith some implementations.

FIGS. 6A-6B are flow charts illustrating a method for bookmarkingprospective media content on computer networks at a server system, inaccordance with some implementations.

DETAILED DESCRIPTION

The implementations described herein provide techniques for bookmarkingprospective media content on computer networks. These techniques enablea user to “pre-bookmark” media content by creating a reference to mediacontent before the content actually becomes available on the Internet orother computer networks. For example, consider a situation where aviewer is watching a newly broadcast show episode on TV that he or shewould like to watch again when it becomes available for viewing viaInternet streaming (typically after a short lock-up period of sometime). Some implementations allow a user to bookmark the episode (e.g.,by selecting a “bookmark” button on a remote control or a smart phoneuser interface) for later watching, even before the content is availablefor streaming. This is accomplished in some implementations by firstidentifying what show or episode the user is watching, determining oneor more network/Internet locations where that episode is likely tobecome available, and then creating a prospective bookmark that refersto that location.

In some situations the future location of a show episode or other mediacontent item can be predicted (e.g., when URLs for a particular TV showepisode adheres to common formats). When this is the case, in someimplementations a stored bookmark is created using the predicted URL(though such bookmark may not be actionable until the show actually isavailable at that URL). In some situations, the future location of themedia content item is difficult if not impossible to predict (e.g., whenthe URL for a particular episode is likely to include anon-deterministic alphanumeric value). When this is the case, in someimplementations a stored bookmark is created that references the URL ofa place holder web page that is associated with the locations of one ormore web domains, or perhaps show pages, for the pre-bookmarked TV showepisode or other media content item. These prospective bookmarks arethen resolved to a determined network URL at a future time when thecorresponding media item becomes available for streaming (ordownloading), at which time the prospective bookmarks also becomeactionable by viewers. The prospective bookmarks (whether predicted ornot) are transmitted to the user via an electronic device so thecorresponding pre-bookmarked locations can be later accessed by the userfrom an Internet browser or a media player application, to name a fewoptions. In some implementations, a server keeps track of thepre-bookmarked locations saved for particular user and attempts toperiodically to resolve them to an actual web page where the respectivemedia content is available.

In this way, as media content is displayed on a TV, a reference to anetwork location where the media content is likely to be made availablecan be provided to a user (even before the media content actually becomeavailable online). This approach is beneficial in that: the user neednot know when media content the user desires will become availableonline; nor will the user need to conduct a subsequent search for themedia content.

Additional details of implementations are now described in relation tothe Figures.

FIG. 1 is a block diagram illustrating a computer system 100 forbookmarking prospective media content on a computer network. In someimplementations, the computer system 100 includes one or more electronicdevices 102 (e.g., a phone, a tablet, or a laptop), a TV 104, a serversystem 106 (“server 106”), an intermediate Google TV-enable device 108(e.g., a Google TV device), optionally a set-top box 109, and acommunication network 110.

In some implementations, the Google TV device 108 receives media contentitems 150 (e.g., TV episodes, movies, songs, or music videos arereceived via a set-top box 109) from one or more content providers, suchas a broadcasting network, a cable or satellite network or an Internetcontent provider, and transmits the received media content items 150 tothe TV 104 for display. In some implementations, the set-top box 109connects to the Google TV device 108 (e.g., via a HDMI cable) to thecommunication network 110. In some implementations, a media content item150 includes meta-data identifying the media content item 150, such asElectronic Program Guide (EPG) information 152 (e.g., a channel numberassociated with a TV episode). In other implementations, a media contentitem 150 does not include meta-data (e.g., title of a TV episode)identifying the media content item, and thus the TV 104 or the Google TVdevice 108 does not know what media content item it is displaying. Insome implementations, the Google TV device 108 includes a fingerprintmodule 124 that generates one or more fingerprints (e.g., contentfingerprints 154), which are used to identify a media content item(e.g., to identify which Law and Order episode is being display on auser's TV). In some implementations, the Google TV device 108 or theelectronic device 102 receives media content item 150, or a portionthereof, or electronic programming guide (EPG) information 152 (e.g.,title or channel number associated with a TV episode being displayed onTV) from the TV 104. In some implementations, the Google TV device 108or the electronic device 102 generates (e.g., using the fingerprintmodule 124) one or more content fingerprints 154 of the received mediacontent item, or the portion thereof.

In some implementations, the TV 104 displays a media content item 150(e.g., a TV episode, a movie or a music TV) received from the Google TVdevice 108 or from the set-top box 109. In some implementations, the TV104 includes a display 105 (e.g., a TV screen).

In some implementations, the electronic device 102 receives a mediacontent item 150 (or a portion thereof) or Electronic Program Guide(EPG) information 152 concerning the media content item 150, from the TV104. In some implementations, the electronic device 102 then sendsinformation corresponding to the media content item 150 to the server106. In some implementations, the information is a portion (video oraudio) of the media content item being displayed on the TV 104 (e.g., 10seconds, audio or video, of a Law and Order episode being displayed onTV). In some implementations, the information corresponding to mediacontent item being displayed on the TV 104 is the Electronic ProgramGuide (EPG) information (e.g., a channel number associated with the TVepisode displayed on TV). In other implementations, the informationcorresponding to the media content item being displayed on the TV 104 isa content fingerprint 154 (e.g., a hash value of the 50 seconds of theLaw and Order episode).

In some implementations, the electronic device 102 then receives abookmark 158 (e.g., a link or reference to a web page, that whenactivated redirects a user to the web page) for accessing the mediacontent item, from the server 106. In some implementations, the bookmark150 is a provisional bookmark, and the electronic device 102 can accessthe media content item on a computer network (e.g., the Internet) afterthe provisional bookmark is converted into a non-provisional bookmark.In some implementations, the bookmark 150 is a non-provisional bookmark,and the electronic device 102 can access the media content item on acomputer network (e.g., the Internet) as soon as receiving the bookmark.

In some implementations, the electronic device 102 includes a camera120, a microphone 122, and optionally a fingerprint module 124. In someimplementations, the camera 120 captures a moving or still image (e.g.,a video portion) of the media content item being displayed on TV. Insome implementations, the microphone 122 captures audio portion of themedia content item being displayed on the TV 104. In someimplementations, the fingerprint module 124 generates one or morefingerprints of the media content item, in accordance with the video oraudio portion captured by the camera 120 or the microphone 122,respectively. In some implementations, the electronic device 102 is orincludes the Google TV device 108.

In some implementations, the server 106 identifies a media content item(e.g., a TV episode) being displayed on TV, and generates a bookmark(e.g., a redirecting web page) corresponding to a URL (e.g., URL 156)where the media content item (e.g., the TV episode) is not yet availablebut is likely to be available, within a predefined time period (e.g.,within 24 hours of the episode's initial air on TV). In someimplementations, where the media content item (e.g., the TV episode) isnot yet available but is likely to be available in the near future, theserver 106 generates or identifies the URL (e.g., URL 156) aftergenerating the bookmark. In some implementations, where a media contentitem is not presently available, between the bookmark is generated andthe server 106 subsequently identifies one or more URLs where the mediacontent item is available, the bookmark functions as a placeholder andis non-actionable (e.g., not clickable) by a user. In someimplementations, where a media content item is presently available, thebookmark functions as a redirecting web page and is actionable (e.g.,clickable) by a user, as soon as the bookmark is created.

In some implementations, the server 106 includes a bookmark server 130,a resolution server 132, a bookmark database 134, a local media contentserver 136, and optionally a fingerprint module 124. In someimplementations, the fingerprint module 124 generates one or morecontent fingerprints 154 of a media content item (e.g., a TV episodebeing displayed on a user's TV), and transmits the fingerprints 154 tothe bookmark server 130.

In some implementations, the bookmark server 130 identifies a mediacontent item (e.g., using the fingerprints, a channel number or titleassociated with the TV episode). In some implementations (e.g., when themedia content item is not currently available online), the bookmarkserver 130 generates a provisional bookmark (e.g., the bookmark 158)corresponding to a domain-description pair, which includes a domain name(e.g., YouTube.com) and a description of the media content item (e.g.,search keywords). In some implementations, a description of a mediacontent item in a domain-description pair includes informationidentifying the media content item (e.g., title of a TV episode).

In some implementations, the resolution server 132, on a predefinedschedule, identifies one or more URLs (where a media content isavailable) corresponding to a provisional bookmark. In someimplementations, the one or more URLs refer to network locations, wherea media content item has become available after its correspondingbookmark was generated. In some implementations, the resolution server132 identifies URLs corresponding to a bookmark, in accordance withdomain-description pairs associated with the bookmark—for example, byexecuting a search on the domain (e.g., YouTube.com) using thedescription (e.g., search keywords).

In some implementations, the resolution server 132 determines (orverifies), after a predefined time period (e.g., 24 hours after the TVepisode's initial air on TV), whether a media content item has becomeavailable on a computer network (e.g., the Internet), and updatesbookmark status accordingly (e.g., marking a provisional bookmark asinvalid if the corresponding media content item has not become availableonline, or converting a provisional bookmark into a non-provisionalbookmark if the corresponding media content item has become available).

In some implementations, the bookmark database 134 stores (i) mappingsbetween a provisional bookmark and one or more domain-description pairs(411 and 412 in FIG. 4), or (ii) mappings between a non-provisionalbookmark and one or more URLs (e.g., URLs where a media content item ispresently available; 413-415 in FIG. 4). In some implementations, theone or more URLs include a URL referring to media content item stored atthe local media content server 136 (e.g., a preferred content provider).In some implementations, the one or more URLs include a URL referring tomedia content item stored at a remote media content server 138 (e.g., asecondary or less preferred content provider). In some implementations,when a non-provisional bookmark corresponds to two or more URLs, theserver 106 determines which URL of the two or more URLs a user isredirected to. In other implementations, the server 106 prompts a userto determine whether URL of the two or more URLs the user is redirectedto.

In some implementations, the communication network 110 optionallyincludes the Internet, one or more local area networks (LANs), one ormore wide area networks (WANs), other types of networks, or acombination of such networks.

FIG. 2 is a block diagram illustrating an electronic device 102(“electronic device 102”) in accordance with some implementations. Theelectronic device 102, in some implementations, includes one or moreprocessing units CPU(s) 202 (also herein referred to as processors, oneor more network interfaces 204, optionally a display device 205, memory206, and one or more communication buses 208 for interconnecting thesecomponents. The communication buses 208 optionally include circuitry(sometimes called a chipset) that interconnects and controlscommunications between system components. The memory 206 typicallyincludes high-speed random access memory, such as DRAM, SRAM, DDR RAM orother random access solid state memory devices; and optionally includesnon-volatile memory, such as one or more magnetic disk storage devices,optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. The memory 206 optionallyincludes one or more storage devices remotely located from the CPU(s)202. The memory 206, or alternately the non-volatile memory device(s)within the memory 206, comprises a non-transitory computer readablestorage medium. In some implementations, the memory 206 or alternatelythe non-transitory computer readable storage medium stores the followingprograms, modules and data structures, or a subset thereof:

-   -   an operating system 210, which includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communication module (or instructions) 212 for        connecting the electronic device 102 with other devices (e.g., a        TV 104 or a server 106) via one or more network interfaces 204        (wired or wireless) or the communication network 110 (FIG. 1);    -   optionally (e.g., when the electronic device 102 has an        appropriate level of computing power) a fingerprint module 124        for generating a content fingerprint (e.g., a hash value) that        uniquely identifies a media content item (e.g., identifies a TV        episode being aired on TV as a particular Law and Order        episode); and    -   data stored on the electronic device 102, which include:        -   a media content item 150 for including media content (e.g.,            a song, a music TV, a movie, a TV episode or a YouTube clip)            or a portion thereof;        -   EPG (e.g., Electronic Program Guide) information 152 for            including electronic program guide information (e.g.,            channel number, title of a TV episode, or name of a cable            network) for uniquely identifying a media content item;        -   a content fingerprint 154 (e.g., a hash value generating            using the first 10 second of a TV episode) for uniquely            identifying a media content item; and        -   one or more bookmark sets 216 (e.g., bookmark sets 216-1            through 216-i) for including bookmarks corresponding to one            or more particular users, each bookmark set including:            -   a provisional bookmark 218-i, which corresponds to one                or more domain-description pairs (e.g., when a media                content item is not yet available but is likely to be                available);            -   a non-provisional bookmark 220-i, which corresponds to                one or more URLs where a media content item is presently                available; and            -   optionally, an invalid bookmark 222-i, when                corresponding media content item did not become                available (or was not identified by the server 106 as                available) within a predefined time period;

In some implementations, the electronic device 102 also includes thecamera 120 and the microphone 122. In some implementations, the camera120 captures, with or without user intervention, audio or video portion,of a media content item, and the microphone 122 captures, with orwithout user intervention, audio portion of a media content item.

In some implementations, one or more of the above identified elementsare stored in one or more of the previously mentioned memory devices,and correspond to a set of instructions for performing a functiondescribed above. The above identified modules or programs (e.g., sets ofinstructions) need not be implemented as separate software programs,procedures or modules, and thus various subsets of these modules may becombined or otherwise re-arranged in various implementations. In someimplementations, the memory 206 optionally stores a subset of themodules and data structures identified above. Furthermore, the memory206 may store additional modules and data structures not describedabove.

FIG. 3 is a block diagram illustrating the server system 106 (“server106”; also called a server), in accordance with some implementations.The server 106 typically includes one or more processing units CPU(s)302 (also herein referred to as processors), one or more networkinterfaces 304, memory 306, and one or more communication buses 308 forinterconnecting these components. The communication buses 308 optionallyinclude circuitry (sometimes called a chipset) that interconnects andcontrols communications between system components. The memory 306includes high-speed random access memory, such as DRAM, SRAM, DDR RAM orother random access solid state memory devices; and optionally includesnon-volatile memory, such as one or more magnetic disk storage devices,optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. The memory 306 optionallyincludes one or more storage devices remotely located from CPU(s) 302.The memory 306, or alternately the non-volatile memory device(s) withinthe memory 306, comprises a non-transitory computer readable storagemedium. In some implementations, the memory 306 or alternately thenon-transitory computer readable storage medium stores the followingprograms, modules and data structures, or a subset thereof:

-   -   an operating system 310, which includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communication module (or instructions) 312 for        connecting the server 106 with other devices (e.g., an        electronic device 102) via the one or more network interfaces        304 (wired or wireless), or the communication network 110 (FIG.        1);    -   optionally, a fingerprint module 124 for generating a content        fingerprint (e.g., a hash value) that uniquely identifies a        media content item;    -   a bookmark server 130 for identifying a media content item        (e.g., identifying a TV episode displaying on TV), and for        generating one or more provisional or non-provisional bookmarks;    -   a resolution server 132 for identifying whether and where (e.g.,        at what particular URLs) a media content item corresponding to a        provisional bookmark has become available, and for updating the        bookmark's status accordingly (e.g., marking a bookmark as        invalid, or converting a provisional bookmark into a        non-provisional bookmark);    -   a bookmark database 134 for storing (i) mappings between a        provisional bookmark and one or more domain-description pairs,        or (ii) mappings between a non-provisional bookmark and one or        more URLs, including:        -   a provisional bookmark 218 (e.g., the bookmark 404 in            FIG. 4) that corresponds to one or more domain-description            pairs 314 (e.g., domain-description pair 314-1 through            domain-description pair 314-i), which in turn can be used to            identify where (e.g., at which URLs) a media content item is            not yet available but is likely to become available within a            predefined time period (e.g., within the next 24 hours);        -   a non-provisional bookmark 220 (e.g., the bookmark 406 in            FIG. 4) that corresponds to one or more URLs (e.g., URL            316-1 through URL 316-i) where a media content item is            presently available—as opposed to not yet available but is            likely to become available within a predefined time            period—and to metadata associated with the corresponding URL            (see FIG. 4, “URL Metadata”); and        -   optionally an invalid bookmark 222 (e.g., the bookmark 408            in FIG. 4) whose corresponding media content item has not            become available after a predefined time period;    -   a local media content server 136 for including media content        items stored on network locations having a predefined        relationship with the server 106 (e.g., within a predefined        distance (or stored locally), or belonged to a same service        provider); and    -   data stored on the server 106, which include:        -   a media content item 150 for including media content (e.g.,            a song, a music TV, a movie, a TV episode or a YouTube clip)            or a portion thereof;        -   Electronic Program Guide (EPG) information 152 for including            electronic program guide information (e.g., channel number,            title of a TV episode, or name of a cable network) for            uniquely identifying a media content item; and        -   a content fingerprint 154 for uniquely identifying a media            content item (e.g., a hash value generating using the 10            second of a TV episode).

In some implementations, one or more of the above identified elementsare stored in one or more of the previously mentioned memory devices,and corresponds to a set of instructions for performing a functiondescribed above. The above identified modules or programs (e.g., sets ofinstructions) need not be implemented as separate software programs,procedures or modules, and thus various subsets of these modules may becombined or otherwise re-arranged in various implementations. In someimplementations, the memory 306 optionally stores a subset of themodules and data structures identified above. Furthermore, the memory306 optionally stores additional modules and data structures notdescribed above.

Although FIG. 3 shows a “server system 106,” also referred to as aserver, FIG. 3 is intended more as functional description of the variousfeatures which may be present in server system than as a structuralschematic of the implementations described herein. In practice, and asrecognized by those of ordinary skill in the art, items shown separatelycould be combined and some items could be separated.

FIG. 4 is a block diagram chart illustrating an example bookmarkdatabase 134, in accordance with some implementations.

As shown in FIG. 4, in some implementations, the bookmark database 134stores one or more bookmarks, status of these bookmarks, one or moredomain-description pairs or URLs associated with a bookmark, and URLmetadata.

In some implementations, a bookmark is a reference or a link (e.g., ashortcut) to a web page that when activated redirects a user to the webpage. In some implementations, a bookmark is a reference to a web page(e.g., a web page available at Google.com/OlympicVideo) owned or undercontrol by the owner of the server 106 (e.g., Google).

In some implementations, the status of a bookmark is one of:provisional, non-provisional, or invalid. In some implementations, aprovisional bookmark corresponds to one or more domain-descriptionpairs. For example, the provisional bookmark 404 corresponds todomain-description pairs 411 (Youtube.com, “2012 Olympic Ceremony”) and412 (WSJ.com, “London Olympic clips”). In some implementations, anon-provisional bookmark corresponds to one or more URLs. For example,the non-provisional bookmark 406 corresponds to URLs 413(“Youtube.com/CATravel”), 414 (“Youtube.com/CalTRIP”), and 415(“WSJ.com/CATRip”). In some implementations, a bookmark corresponds toat least a predefined number of (e.g., at least two) domain-descriptionpairs or URLs, when redundancy is desired (e.g., because a media contentitem might be associated with different descriptions or removed from oneURL without prior notice). In some implementations, a bookmarkcorresponds to at least one domain-value pair or at least one URLassociated with a preferred website or web domain (e.g., YouTube.com orGoogle.com/video), to ensure content authenticity.

In some implementations, a URL is associated with metadata concerning:quality of a media content item available at the URL (e.g., highdefinition “HD” or low quality, a full length version or a trailer orpreview version), access requirement for a media content item (e.g., feeor subscription required or free access), or characteristics of the URL(e.g., whether the URL belongs to an official or an authorized website).In some implementations, a domain-description pair is not associatedwith any metadata. In other implementations, a domain-description pairis associated with metadata (e.g., High resolution) concerning thedomain (e.g., YouTube.com) (416-419 in FIG. 4).

In some implementations, URLs associated with a non-provisional bookmarkare selected based on predefined criteria (e.g., media content itemquality, cost or speed of access or URL ownership). In someimplementations, when a non-provisional bookmark is associated with twoor more URLs (e.g., the non-provisional bookmark 406 is associated withURLs 413-415), after activating the non-provisional bookmark, a user isdirected to one or the two or more URLs in accordance with one or morepredefined criteria (e.g., whether a URL belongs to an official contentprovider, such as YouTube, or to a content provider within a particulargeographical region, such as a content provider located within the samecountry as a user).

FIG. 5 is a flow chart illustrating a method 500 for bookmarkingprospective media content on computer network in a computer system, inaccordance with some implementations.

In some implementations, an electronic device first collects (502)information corresponding to a media content item 150 (e.g., a Law andOrder TV episode being aired on the TV 104) via the camera 110 or themicrophone 122. In some implementations, the information is one of: (i)a portion of the media content item (e.g., 50 seconds of the Law andOrder episode being air on TV), (ii) a content fingerprint of the mediacontent item (e.g., a hash value generated using the 50 seconds of theLaw and Order episode), or (iii) electronic program guide (EPG)information (e.g., channel number, or title) identifying the mediacontent item. In some implementations, where the information is afingerprint of the media content item, the fingerprint is generated bythe electronic device (e.g., when the electronic device has anappropriate level of computing power) or by the server.

In some implementations, the server then obtains (504) the informationcorresponding to the media content item from the electronic device(e.g., via the communication network 110).

In some implementations, after obtaining (504) the informationcorresponding to the media content item, the server identifies (506) themedia content item, from among a plurality of media content items, inaccordance with the information. In some implementations, the serveridentifies (506) the media content item, from among a plurality of mediacontent items, using meta-data associated with the media content item.For example, using the channel number or metadata associated with theLaw and Order episode being aired on TV, the server identifies theepisode as the second episode from the fifth season of the Law and Orderseries, entitled “XYZ.”

In some implementations, after identifying (506) the media content item,the server creates (508) a provisional bookmark (e.g., bookmark 404 inFIG. 4) corresponding to a first URL (e.g., URL 411) where the mediacontent item is not yet available but is likely to be available within apredefined time period. In some implementations, the first URL isgenerated or identified after the provisional bookmark is created. Forexample, after identifying a video being aired on a TV as the part ofthe 2012 Olympic Games opening ceremony, the server creates adomain-description pair (“Youtube.com,” “2012 Olympic Ceremony”) thatidentifies a domain and a description for that particular media contentitem. Subsequently, the resolution server 132 will identify a first URLwhere a “2012 Olympic Opening Ceremony” episode is available.

In some implementations, when a media content item is not presentlyavailable, the server knows or predicts, with or without userintervention, where the media content item is likely to be available atone or more URLs (or domains in general), in accordance with customarypractices or common knowledge among the media and entertainmentindustry. For example, a cable provider may normally make a TV episodeavailable on TV first, then within 24 hours of its initial appearance onTV, make the TV episode available its official website, and withinanother 8 days, websites of its affiliates' websites and third partyvideo services.

In some implementations, the server then transmits (510) the provisionalbookmark to the electronic device. In some implementations, theelectronic device receives (512) the provisional bookmark and displays(514) the provisional bookmark (e.g., in a web browser) to a user. Insome implementations, a provisional bookmark is non-clickable,greyed-out, or non-actionable, as so to represent that a media contentitem is not yet available.

In some implementations, after transmitting (510) the provisionalbookmark to the electronic device, the server further determines (516)whether the media content item has in fact become available online,after the predefined time period. For example, after creating thebookmark 404, and 24 hours after the opening ceremony of the 2012Olympic Games was aired live on TV, the server determines whether it hasbecome available online, by searching (1) “2012 Olympic Ceremony” on thedomain Youtube.com or (2) “London Olympic clips” on domain WSJ.com (411or 412 in FIG. 4).

In some implementations, in accordance with a determination that themedia content item has become available (“Yes” 518) at one or more URLsbefore the predefined time period expires, the server converts (520) theprovisional bookmark into a non-provisional bookmark. In someimplementations, the server also converts (520) the provisional bookmarkinto a non-provisional bookmark, if the media content item has becomeavailable at a (new) URL not previously identified as corresponding tothe provisional bookmark.

In some implementations, after converting (520) the provisional bookmarkinto a non-provisional bookmark, the server updates the bookmark byreplacing the one or more domain-description pairs with the one or moreURLs where the media content item has become available. For example,after searching (1) “2012 Olympic Ceremony” on the domain Youtube.com or(2) “London Olympic clips” on domain WSJ.com, the domain-descriptionpairs 411 and 412 are substituted with URLs on these domains where the2012 Olympic Games opening ceremony is available, such as“YouTube.com/OlymGamesOpen,” or “WJS.com/2012London”.

In some implementations, after a provisional bookmark is converted intoa provisional bookmark, the electronic device replaces the provisionalbookmark displayed on the electronic device (e.g., a greyed-outbookmark) with the provisional bookmark (e.g., a clickable bookmark).

In some implementations, in accordance with a determination that themedia content item has not yet become available online (“No” 524) afterthe predefined time period, the server marks (526) the provisionalbookmark as invalid. In some implementations, when a provisionalbookmark is marked as invalid, the server removes (528) the provisionalbookmark from the electronic device, or promotes a user to delete theprovisional bookmark.

FIGS. 6A-6B are flow charts illustrating a method 600 for bookmarkingprospective media content on computer network at a server system, inaccordance with some implementations.

In some implementations, the server first obtain (602), from anelectronic device (e.g., a smart phone or a tablet), informationcorresponding to a media content item (e.g., a Law and Order episodebeing aired on TV). In some implementations, the media content item(e.g., the Law and Order episode) has not yet become available but islikely to be made available on a computer network (e.g., made availableon the Internet) within a predefined time period.

In some implementations, the information (604) corresponding to themedia content item is one of: (i) a portion of the media content item(606) (e.g., 50 seconds of the Law and Order episode being air on TV,video or audio), (ii) a content fingerprint of the media content item(608) (e.g., a hash value generated using the 50 seconds of the Law andOrder episode), or (iii) electronic program guide (EPG) information(610) (e.g., channel number, or title) identifying the media contentitem.

In some implementations, the information corresponding to the mediacontent item is obtained from media content promoting the media contentitem. For example, the portion of the media content item (606) (e.g., 50seconds of a Law and Order episode) or the fingerprint (608) is obtainedfrom a TV commercial promoting that episode, rather than from theepisode itself.

In some implementations, after obtaining the information (604)corresponding to the media content item, the server identifies (612) themedia content item, from among a plurality of media content items, inaccordance with the information. For example, using the fingerprint orthe channel number associated with the Law and Order episode being airedon TV, the server identifies the episode as the second episode from thefifth season of the Law and Order series, entitled “XYZ.” In someimplementations, when the information corresponding to the media contentitem is a portion of the media content item, identifying (604) the mediacontent item in accordance with the information includes: obtaining(616) a content fingerprint (e.g., using the fingerprint module 124) inaccordance with the portion of the media content item; and identifying(618) the media content item, among a plurality of media content items,in accordance with the content fingerprint.

In some implementations, after identifying the media content item, theserver creates (620) a provisional bookmark (e.g., bookmark 410 in FIG.4) corresponding to a first URL (e.g., URL 411) where the media contentitem is not yet available but is likely to be available within apredefined time period. In some implementations, the first URL isgenerated or identified after the provisional bookmark is created. Forexample, after identifying a video being aired on a TV as the part ofthe 2012 Olympic Games opening ceremony, the server creates adomain-description pair (“Youtube.com,” “2012 Olympic Ceremony”), inaccordance with which, the resolution server 132 subsequently identifiesa first URL among a plurality of URLs where a “2012 Olympic OpeningCeremony” episode has become available.

In some implementations, the first URL is selected (622), among of aplurality of URLs, in accordance with one or more predefined criteria.In some implementations, the one or more predefined criteria include oneof: quality (e.g., high definition “HD” or low quality) associated witha media content item to be available at the first URL, cost (e.g., feeor subscription required, such as content at WSJ.com, or free access,such as content on YouTube.com) or speed (high or low connection speed)associated with accessing the media content item at the first URL, orwhether the first URL belongs to an official or authorized provider ofthe media content item (e.g., selecting cnn.com/video rather thanCnnCopyCat.com/video for a CNN news video).

In some implementations, where redundancy is desired, two or moredomain-description pairs are selected and associated with a provisionalbookmark (e.g., because media content items online might be associatedwith or tagged with different descriptions). For example, in FIG. 4,domain-description pairs 411 and 412 are selected and associated withthe provisional bookmark 404.

In some implementations, after creating (620) the provisional bookmark,the server 106 transmits (624) the provisional bookmark to theelectronic device. In some implementations, the provisional bookmark isdisplayed as a bookmark in a web browser (e.g., a bookmark in GoogleChrome). In some implementations, a provisional bookmark is displayed ina visually distinctive manner from a non-provisional bookmark. Forexample, a provisional bookmark is displayed as greyed-out,non-clickable, or non-actionable, but a non-provisional bookmark isdisplayed as clickable or actionable.

In some implementations, after creating (620) the provisional bookmark,the server further determines (628) whether the media content item hasbecome available online. For example, after creating the bookmark 404,and 24 hours after the opening ceremony of the 2012 Olympic Games wasaired live on TV, the server determines whether it has become availableonline, by searching (1) “2012 Olympic Ceremony” on the domainYoutube.com or (2) “London Olympic clips” on domain WSJ.com (411 and 412in FIG. 4).

In some implementations, in accordance with a determination that themedia content item has in fact become available (“Yes” 630), before thepredefined time period expires, the server converts (632) theprovisional bookmark into a non-provisional bookmark. For example, whenthe server determines, 24 hours after a TV episode's initial air on TV,the episode has become available at at least one or the URLs associatedwith the provisional bookmark, or a new URL not previously associatedwith the provisional bookmark, the server transforms the appearance ofthe provisional bookmark on the electronic device into that of anon-provisional bookmark (e.g., change the bookmark from greyed-out ornon-clickable to clickable).

In some implementations, after a provisional bookmark is converted intoa non-provisional bookmark, when a user clicks the non-provisionalbookmark, the server redirects (634) the user to an alternate URL—thathas not been previously associated with the non-provisionalbookmark—where the media content item is also available. For example,after the provisional bookmark 404 is converted into a non-provisionalbookmark (which corresponds to URLs 413-315), the server (e.g., theresolution server 133) discovers an alternate URL—that has not beenpreviously associated with the bookmark 406 (e.g., a URL other than theURLs 413-315)—where the TV episode is also available. In someimplementations, the server 106 updates the bookmark database, forexample to add the alternate URL as a URL associated with the bookmark406. In some implementations, after clicking the bookmark 406, a user isdirected (or redirected) to the alternate URL, rather than a URLpreviously associated with the bookmark 406 (e.g., URLs 413-415). Thisapproach is beneficial because it allows newly discovered locationswhere content desired by a user is available to be made known to theuser, thereby enhancing efficiency and flexibility.

In some implementations, in accordance with a determination that themedia content item did not become available online (“No” 636) after thepredefined time period—e.g., 24 hours after the opening ceremony,searching “2012 Olympic Ceremony” on “Youtube.com,” or “London Olympicclips” on “WSJ.com” does not return any URL where the opening ceremonyof the 2012 Olympic Game is available—the server marks (638) theprovisional bookmark as invalid (e.g., the server removes theprovisional bookmark from the electronic device, or promotes a user todelete the provisional bookmark).

In some implementations, a server associates a bookmark with only URLswhere a full version of a media content item is available. In someimplementations, the server identifies an additional URL where a portionof the media content item is likely to be available within thepredefined time period or is presently available; but forgoes creating abookmark corresponding the additional URL, in accordance with adetermination that the portion of the media content item is less than athreshold amount. For example, when the server identifies a URL where atrailer version (e.g., including only the first 10 minutes of a 60minutes TV episode), rather than a full version, is likely to beavailable or is presently available, the server does not creates abookmark for that URL or does not associate the bookmark with that URL.

In some implementations, where a second media content item is presently(or already) available on computer network, the server obtains (640),from the electronic device, second information corresponding to thesecond media content item; and creates (642) a non-provisional (ratherthan a provisional) bookmark corresponding to a second URL where thesecond media content item is presently available. For example, when aCalifornia Travel Video a user is watching on his or her TV is presentlyor already available on the Internet, the server creates anon-provisional bookmark (e.g., bookmark 406 in FIG. 4), which, whenclicked, redirects a user to a URL (URL 413-415) where the CaliforniaTravel Video is readily or presently available.

Plural instances may be provided for components, operations orstructures described herein as a single instance. Finally, boundariesbetween various components, operations, and data stores are somewhatarbitrary, and particular operations are illustrated in the context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within the scope of the implementation(s).In general, structures and functionality presented as separatecomponents in the example configurations may be implemented as acombined structure or component. Similarly, structures and functionalitypresented as a single component may be implemented as separatecomponents. These and other variations, modifications, additions, andimprovements fall within the scope of the implementation(s).

It will also be understood that, although the terms “first,” “second,”etc. may be used herein to describe various elements, these elementsshould not be limited by these terms. These terms are only used todistinguish one element from another. For example, a first URL could betermed a second URL, and, similarly, a second URL could be termed afirst URL, which changing the meaning of the description, so long as alloccurrences of the “first URL” are renamed consistently and alloccurrences of the “second URL” are renamed consistently. The first URL,and the second URL are both URLs, but they are not the same URL.

The terminology used herein is for the purpose of describing particularimplementations only and is not intended to be limiting of the claims.As used in the description of the implementations and the appendedclaims, the singular forms “a”, “an” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “comprises” and/or “comprising,” when used inthis specification, specify the presence of stated features, integers,steps, operations, elements, and/or components, but do not preclude thepresence or addition of one or more other features, integers, steps,operations, elements, components, and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in accordance with a determination”or “in response to detecting,” that a stated condition precedent istrue, depending on the context. Similarly, the phrase “if it isdetermined (that a stated condition precedent is true)” or “if (a statedcondition precedent is true)” or “when (a stated condition precedent istrue)” may be construed to mean “upon determining” or “in response todetermining” or “in accordance with a determination” or “upon detecting”or “in response to detecting” that the stated condition precedent istrue, depending on the context.

The foregoing description included example systems, methods, techniques,instruction sequences, and computing machine program products thatembody illustrative implementations. For purposes of explanation,numerous specific details were set forth in order to provide anunderstanding of various implementations of the inventive subjectmatter. It will be evident, however, to those skilled in the art thatimplementations of the inventive subject matter may be practiced withoutthese specific details. In general, well-known instruction instances,protocols, structures and techniques have not been shown in detail.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit the implementations to the precise forms disclosed. Manymodifications and variations are possible in view of the aboveteachings. The implementations were chosen and described in order tobest explain the principles and their practical applications, to therebyenable others skilled in the art to best utilize the implementations andvarious implementations with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method comprising: at a computing system havingone or more processors and memory storing one or more programs forexecution by the one or more processors: obtaining from an electronicdevice identifying information corresponding to a media content itembeing presented on a television associated with the electronic device;identifying the media content item in accordance with the obtainedidentifying information; based on identification of the media contentitem, obtaining one or more URLs of web pages where the media contentitem is not currently available but is likely to become available withina predefined future time period; and creating a provisional bookmarkcorresponding to a first URL of the one or more URLs, wherein the firstURL is selected from among the one or more URLs in accordance with oneor more predefined criteria; and transmitting the provisional bookmarkto the electronic device.
 2. The method of claim 1, further comprising:obtaining from the electronic device second identifying informationcorresponding to a second media content item being presented on thetelevision; identifying the second media content item in accordance withthe obtained second identifying information; obtaining a second URL of aweb page where the second media content item is currently availableonline; and creating a non-provisional bookmark corresponding to thesecond URL.
 3. The method of claim 1, wherein the identifyinginformation corresponding to the media content item is one of: (i) aportion of the media content item, (ii) a fingerprint of the mediacontent item, or (iii) electronic program guide (EPG) informationidentifying the media content item.
 4. The method of claim 3, wherein,when the identifying information corresponding to the media content itemis a portion of the media content item, identifying the media contentitem in accordance with the identifying information comprises: obtaininga content fingerprint in accordance with the portion of the mediacontent item; and identifying the media content item from among theplurality of media content items in accordance with the contentfingerprint.
 5. The method of claim 1, further comprising: identifyingan additional URL where a portion of the media content item is likely tobe available within the predefined time period or is presentlyavailable; and in accordance with a determination that the portion ofthe media content item is less than a threshold amount, forgoingcreating a bookmark corresponding to the additional URL.
 6. The methodof claim 1, wherein the one or more predefined criteria further includeone or more of: quality associated with the media content item to beavailable at the first URL, cost or speed associated with accessing themedia content item at the first URL, and whether the first URL belongsto an official or authorized provider of the media content item.
 7. Themethod of claim 1, further comprising: after creating the provisionalbookmark, automatically performing a resolution operation to determinewhether the media content item is available online in accordance withthe provisional bookmark; in accordance with a determination that themedia content item has not yet become available online, after expirationof the predefined time period: marking the provisional bookmark asinvalid; and transmitting to the electronic device a message instructingthe electronic device to remove the provisional bookmark.
 8. The methodof claim 1, further comprising: after creating the provisional bookmark,automatically performing a resolution operation to determine whether themedia content item is available online in accordance with theprovisional bookmark; in accordance with a determination that the mediacontent item has become available online, before expiration of thepredefined time period: converting the provisional bookmark into anon-provisional bookmark; and transmitting to the electronic device amessage instructing the electronic device to replace the provisionalbookmark with the non-provisional bookmark.
 9. The method of claim 8,further comprising: after the provisional bookmark is converted into anon-provisional bookmark, automatically identifying one or morealternate URLs where the media content item is available online; andredirecting the non-provisional bookmark to the one or more an alternateURLs.
 10. The method of claim 1, wherein the information correspondingto the media content item is obtained from media content promoting themedia content item.
 11. A computing system, comprising: at least oneprocessor; memory; and at least one program stored in the memory andexecutable by the at least one processor, the at least one programcomprising instructions to: obtain from an electronic device identifyinginformation corresponding to a media content item being presented on atelevision associated with the electronic device; identify the mediacontent item in accordance with the obtained identifying information;based on identification of the media content item, obtaining one or moreURLs of web pages where the media content item is not yet currentlyavailable but is likely to become available within a predefined futuretime period; and create a provisional bookmark corresponding to a firstURL of the one or more URLs, wherein the first URL is selected fromamong the one or more URLs in accordance with one or more predefinedcriteria; and transmit the provisional bookmark to the electronicdevice.
 12. The system of claim 11, wherein the identifying informationcorresponding to the media content item is one of: (i) a portion of themedia content item, (ii) a fingerprint of the media content item, or(iii) electronic program guide (EPG) information identifying the mediacontent item.
 13. The system of claim 12, wherein, when the identifyinginformation corresponding to the media content item is a portion of themedia content item, identifying the media content item in accordancewith the identifying information comprises: obtaining a contentfingerprint in accordance with the portion of the media content item;and identifying the media content item from among the plurality of mediacontent items in accordance with the content fingerprint.
 14. The systemof claim 11, wherein the at least one program further comprisesinstructions to: after creating the provisional bookmark, automaticallyperform a resolution operation to determine whether the media contentitem is available online in accordance with the provisional bookmark; inaccordance with a determination that the media content item has not yetbecome available online, after expiration of the predefined time period:mark the provisional bookmark as invalid; and transmit to the electronicdevice a message instructing the electronic device to remove theprovisional bookmark.
 15. The system of claim 11, wherein the at leastone program further comprises instructions to: after creating theprovisional bookmark, automatically perform a resolution operation todetermine whether the media content item is available online inaccordance with the provisional bookmark; in accordance with adetermination that the media content item has become available online,before expiration of the predefined time period: convert the provisionalbookmark into a non-provisional bookmark; and transmit to the electronicdevice a message instructing the electronic device to replace theprovisional bookmark with the non-provisional bookmark.
 16. Anon-transitory computer readable storage medium storing at least oneprogram configured for execution by at least one processor of a computersystem, the at least one program comprises instructions to: obtain froman electronic device identifying information corresponding to a mediacontent item being presented on a television associated with theelectronic device; identify the media content item in accordance withthe obtained identifying information; based on identification of themedia content item, obtaining one or more URLs of web pages where themedia content item is not currently available but is likely to becomeavailable within a predefined future time period; and create aprovisional bookmark corresponding to a first URL of one or more URLs,wherein the first URL is selected from among the one or more URLs inaccordance with one or more predefined criteria; and transmit theprovisional bookmark to the electronic device.
 17. The computer readablestorage medium of claim 16, wherein the identifying informationcorresponding to the media content item is one of: (i) a portion of themedia content item, (ii) a fingerprint of the media content item, or(iii) electronic program guide (EPG) information identifying the mediacontent item.
 18. The computer readable storage medium of claim 17,wherein, when the identifying information corresponding to the mediacontent item is a portion of the media content item, identifying themedia content item in accordance with the identifying informationcomprises: obtaining a content fingerprint in accordance with theportion of the media content item; and identifying the media contentitem from among the plurality of media content items in accordance withthe content fingerprint.
 19. The computer readable storage medium ofclaim 16, wherein the at least one program further comprisesinstructions to: after creating the provisional bookmark, automaticallyperform a resolution operation to determine whether the media contentitem is available online in accordance with the provisional bookmark; inaccordance with a determination that the media content item has not yetbecome available online, after expiration of the predefined time period:mark the provisional bookmark as invalid; and transmit to the electronicdevice a message instructing the electronic device to remove theprovisional bookmark.
 20. The computer readable storage medium of claim16, wherein the at least one program further comprises instructions to:after creating the provisional bookmark, automatically perform aresolution operation to determine whether the media content item isavailable online in accordance with the provisional bookmark; inaccordance with a determination that the media content item has becomeavailable online, before expiration of the predefined time period:convert the provisional bookmark into a non-provisional bookmark; andtransmit to the electronic device a message instructing the electronicdevice to replace the provisional bookmark with the non-provisionalbookmark.